package gob.inei.enaho.controller.activity;

import util.android.AndroidUtil;
import util.android.cuestionario.fragment.CuestionarioFragmentActivity;
import util.android.sqlite.SQLiteUtil;
import util.form.Seccion;
import util.patron.command.Command1;

import gob.inei.enaho.context.Aplicacion;
import gob.inei.enaho.context.AppContext;
import gob.inei.enaho.context.Preferencias;
import gob.inei.enaho.model.database.EnahoOpenHelper;
import gob.inei.enaho.model.domain.enaho.cuestionario.CuestionarioEnaho;
import gob.inei.enaho2014.R;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteOpenHelper;
import android.view.MenuItem;

public abstract class EnahoFragmentActivity 
extends CuestionarioFragmentActivity
{
	
	
	public static void abrirCapitulo(
			Context context,
			String c, 
			String v, 
			String h,
			Seccion<CuestionarioEnaho> seccion,
			Command1<Intent> comando
			) throws Exception {
		
		Intent i = null;
		
		CuestionarioEnaho cuest = seccion.getCuestionario().getEnum(); 
		String sec = seccion.getEnumName();
		
		switch(cuest) {
		case ENAHO_01:
			i = new Intent(context,Enaho01FragmentActivity.class);
			break;
		case ENAHO_01A:
			break;
		case ENAHO_01B:
			break;
		case ENAHO_02:
			break;
		case ENAHO_04:
			break;
		default:
			break;		
		}
		
		i.putExtra("c",c);
		i.putExtra("v",v);
		if(h!=null)
			i.putExtra("h",h);
		i.putExtra("capitulo", sec);
		
		if(comando!=null)
			comando.execute(i);
		
		context.startActivity(i);	
		
		guardarConfiguracion(context,cuest,sec);
	}
	
	private static void guardarConfiguracion(Context context, CuestionarioEnaho cuest, String seccion) {
		SharedPreferences sharedPref = Preferencias.leerPreferencias(context);
		SharedPreferences.Editor editor = sharedPref.edit();
		
		//editor.putString(Preferencias.CUESTIONARIO,cuest.name());
		//editor.putString(Preferencias.SECCION,seccion);
		
		editor.putString(cuest.name(),seccion);
		
		editor.commit();		
	}
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		int id = item.getItemId();
		switch(id) {
		case R.id.backup:
			SQLiteOpenHelper helper = new EnahoOpenHelper(Aplicacion.getAplicacion());
			try {
				SQLiteUtil.copyDatabaseToSdCard(
						helper, 
						this.getBaseContext(), 
						AppContext.DIR_BACKUP, 
						EnahoOpenHelper.DATABASE_NAME, 
						true);
			} catch (Exception e) {
				AndroidUtil.mostrarExcepcionEnToast(getBaseContext(), e);
			}
			break;
		case R.id.observaciones:
			this.getAdapter().abrirObservaciones();
			break;
		}
		return super.onOptionsItemSelected(item);
	}

	
}
